/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compilador.analisadorSintatico.comandos;

import compilador.analisadorLexico.Token;
import compilador.analisadorLexico.TokenClass;
import compilador.analisadorSintatico.Producao;
import compilador.analisadorSintatico.TokenReader;
import compilador.analisadorSintatico.simboloGramatical.NaoTerminal;
import compilador.analisadorSintatico.simboloGramatical.SimboloGramatical;
import compilador.analisadorSintatico.simboloGramatical.Terminal;

/**
 *
 * @author  Matheus Cardoso
 * <ELSE> ::= else <BLOCO> 
 */
class ELSE extends Producao {

    @Override
    public SimboloGramatical derivar() throws Exception {
        //chama o token reader para correr os tokens
        TokenReader tokenReader = TokenReader.getInstance();

        //Consome o terminal else
        ((NaoTerminal) simbolo).add(new Terminal(tokenReader.consome()));
        
        //adiciona o else à árvore
        ((NaoTerminal) simbolo).add(new Terminal(tokenReader.seeCurrent()));

        //adiciona eventuais teminais não terminais oriundos da derivação de bloco
        ((NaoTerminal) simbolo).add(new BLOCO().derivar());


        return simbolo;
    }

    @Override
    public void setSimbolo() {
        simbolo = new NaoTerminal(this.getClass().getSimpleName());
    }
}
